package list

import (
	"github.com/gofiber/fiber/v2"
	"sg-backend/global"
	"sg-backend/model/user"
)

/*
 * method  GET
 * path    /api/user/item
 */

type _UserJson struct {
	Id       uint   `json:"id"`
	Username string `json:"username"`
}

// GetUserItem GET请求，获取有效账号列表
func GetUserItem(ctx *fiber.Ctx) error {

	// 获取并分页处理
	var users []user.User
	var usersJson []_UserJson

	// 匹配全部数据，计算总数
	r := global.DB.Where("is_active = ?", true).Distinct().Find(&users)
	if r.Error != nil {
		return ctx.JSON(fiber.Map{
			"status":  "error",
			"message": "数据库查询出错！" + r.Error.Error(),
		})
	}

	// 循环处理填充Item
	for _, v := range users {
		usersJson = append(usersJson, _UserJson{Id: v.Id, Username: v.Username})
	}

	// 查询结束返回结果
	return ctx.JSON(fiber.Map{
		"status":  "done",
		"success": true,
		"message": "请求成功！",
		"data":    usersJson,
	})
}
